home *** CD-ROM | disk | FTP | other *** search
- #! /bin/sh
- # $Header: /home/jerry/.bin/RCS/rmf,v 1.3 92/08/09 23:26:34 jerry mh_contrib $
- ### rmf - front-end to MH rmf command; tries to stop MH from trashing symlinks
- ##
- ## THE rmf IN MH 6.7.2 (AND PROBABLY OTHERS) WON'T CHECK TO SEE WHETHER A
- ## "FOLDER" IS REALLY A SYMBOLIC LINK TO ANOTHER FOLDER. IT REMOVES ALL
- ## THE MESSAGES FROM THE FOLDER THAT THE LINK POINTS TO, THEN GIVES UP!
- ## THIS FRONT-END TESTS BEFORE IT STARTS THE REAL rmf; IF YOU'RE TRYING
- ## TO REMOVE A SYMLINK, IT TELLS YOU AND ABORTS.
- ##
- # PUT THIS SCRIPT SOMEWHERE IN YOUR $PATH AHEAD OF THE MH BINARY DIRECTORY.
- #
- # TABSTOPS IN THIS CODE ARE SET AT 4.
- #
- # USE AT YOUR OWN RISK. SEEMS TO WORK, BUT IT'S YOUR RESPONSIBILITY!
- # PLEASE TELL ME ABOUT BUGS AND FIXES: Jerry Peek, jerry@ora.com
-
- mhdir=/usr/local/mh # WHERE MH BINARIES LIKE folder AND rmf LIVE
-
- echo "NOTE: Using front-end $0." 1>&2 # SHOW THIS SCRIPT'S NAME
-
- # GRAB FOLDER NAME:
- for arg
- do
- case "$arg" in
- [@+]*)
- if [ -z "$folder" ]
- then
- folder="$arg"
- else
- echo "`basename $0` aborting: '$arg'? Only one folder at a time." 1>&2
- exit 1
- fi
- ;;
- esac
- done
-
- # GET PATH TO FOLDER. (DEFAULTS TO CURRENT FOLDER.)
- folpath="`$mhdir/mhpath $folder`" || exit 1
- # NOT ALL testS TEST SYMLINKS. FAKE IT; TEST ls -l FOR "lrwx..." OUTPUT:
- lsout="`/bin/ls -ld $folpath`" || exit 1
- case "$lsout" in
- "") echo "`basename $0` aborting: '/bin/ls -ld $folpath' bombed?" 1>&2;;
- l*) echo "`basename $0` aborting: $folpath is a symbolic link!?!" 1>&2;;
- *) exec $mhdir/rmf ${1+"$@"} ;; # WORKAROUND FOR "$@" PROBLEMS IN SOME SHELLS
- esac
- exit 1 # ALWAYS AN ERROR IF GET HERE: exec FAILED OR WRONG case MATCHED.
-